package cn.iocoder.yudao.module.currency.service.rate;

import cn.iocoder.yudao.module.currency.api.rate.dto.ExchangeRateRespDTO;
import cn.iocoder.yudao.module.currency.dal.dataobject.rate.ExchangeRateDO;
import java.util.Collection;
import java.util.List;

/**
 * @author cai
 * @date 2024/03/05 23:34
 */
public interface ExchangeRateQueryService {

    /**
     * 通过编码获取汇率
     * @param currencyCode 货币编码，例如 CNY
     * @return 汇率
     */
    ExchangeRateDO getExchangeRate(String currencyCode);

    ExchangeRateDO getExchangeRate(String baseCode, String targetCode);

    /**
     * 获取可用货币列表
     * @param currencyName 货币名称
     * @param currencyCode 货币编码
     * @param areaName 地区名称
     * @return 货币列表
     */
    List<ExchangeRateDO> getAvailableCurrencyList(String currencyName, String currencyCode, String areaName);

    /**
     * 获取支付货币
     * @return 支付货币
     */
    ExchangeRateDO getPaymentCurrency();

    /**
     * 获取可用货币列表
     * @param currencyCodes 货币编码
     * @return 货币列表
     */
    List<ExchangeRateDO> getListByCode(Collection<String> currencyCodes);
}
